# -*- coding: utf-8 -*-

from abc import ABC, abstractmethod


class IMessage(ABC):
    """
    将请求的一个消息封装到message中，定义抽象层接口
    """

    @abstractmethod
    def GetDataLen(self) -> int:
        """
        获取消息数据段长度
        :return:
        """
        pass

    @abstractmethod
    def GetMsgId(self) -> int:
        """
        获取消息ID
        :return:
        """
        pass

    @abstractmethod
    def GetData(self) -> bytes:
        """
        获取消息内容
        :return:
        """
        pass

    @abstractmethod
    def SetDataLen(self, m_len: int):
        """
        设置消息数据段长度
        :param m_len:
        """
        pass

    @abstractmethod
    def SetMsgId(self, m_id: int):
        """
        设置消息ID
        :param m_id:
        """
        pass

    @abstractmethod
    def SetData(self, data: bytes):
        """
        设置消息内容
        :param data:
        """
        pass
